﻿Imports Biz
Imports DAL


''' <summary>
''' Clase de gestión de lógica de negocio para la entidad Seleccion
''' </summary>
''' <remarks></remarks>
Public Class GestorSeleccion

    Private Shared _instance As GestorSeleccion
    Private Shared m_semaforo As New Object

    Private _DALSeleccion As DALSeleccion

    ''' <summary>
    ''' Obtiene un objeto Seleccion.
    ''' </summary>
    ''' <param name="oSeleccion">Objeto Seleccion con la propiedad Dep_Codigo seteada
    ''' con el valor del Seleccion a buscar.</param>
    ''' <returns>Objeto cSeleccion con datos obtenidos desde la base de datos.</returns>
    ''' <remarks></remarks>
    Public Function Buscar(ByVal oSeleccion As cSeleccion) As cSeleccion

        Return _DALSeleccion.Sel(oSeleccion)

    End Function

    ''' <summary>
    ''' Realiza una llamada a la capa de acceso a datos DAL para consultar la lista de Selecciones de Búsqueda
    ''' </summary>
    ''' <returns>Colección de objetos de tipo cSeleccion</returns>
    ''' <remarks></remarks>
    Public Function Consultar(oBusqueda As cBusqueda) As Collection

        Return _DALSeleccion.SelectPorBusqueda(oBusqueda.Busq_Numero)

    End Function

    ''' <summary>
    ''' Método estático Instance para exponer una única instancia de la clase GestorSeleccion
    ''' </summary>
    ''' <returns>Unica instancia de la clase GestorSeleccion</returns>
    ''' <remarks></remarks>
    Public Shared Function Instance() As GestorSeleccion
        If _instance Is Nothing Then
            SyncLock (m_semaforo)
                If _instance Is Nothing Then
                    _instance = New GestorSeleccion
                End If
            End SyncLock
        End If

        Return _instance
    End Function

    Private Sub New()
        _DALSeleccion = DALSeleccion.Instance
    End Sub

End Class
